package com.heima.common.tess4j;

import lombok.Getter;
import lombok.Setter;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.awt.image.BufferedImage;
import java.io.File;

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "tess4j")
public class Tess4jClient {

    private String dataPath;
    private String language;

    /**
     * 识别图片中的文字信息
     * @param image
     * @return
     * @throws TesseractException
     */
    public String doOCR(BufferedImage image) throws TesseractException {
        //创建Tesseract对象
        ITesseract tesseract = new Tesseract();
        //设置字体库路径
        tesseract.setDatapath(dataPath);
        //中文识别
        tesseract.setLanguage(language);
        //执行ocr识别
        String result = tesseract.doOCR(image);
        //替换回车和tal键  使结果为一行
        result = result.replaceAll("\\r|\\n", "——").replaceAll(" ", "");
        return result;
    }

    /*public static void main(String[] args) {
        Tesseract tesseract = new Tesseract();
        //设置字体库路径
        tesseract.setDatapath("D:\\item-3\\utils\\tessdata");
        //中文识别
        tesseract.setLanguage("chi_sim");
        //获取本地图片
        File file = new File("D:\\item-3\\utils\\图片中文本内容识别.png");
        String res = null;
        try {
            //执行OCR识别
            res = tesseract.doOCR(file);
        } catch (TesseractException e) {
            e.printStackTrace();
        }
        //替换回车和tal键  使结果为一行
        res = res.replaceAll("\\n|\\r","——");
        System.out.println("res = " + res);
    }*/

}
